Невозможно определить неправильную дату с использованием регулярного выражения Java [duplicate]

Вот два способа. Первый способ создает dimnames для матрицы, которая должна быть создана, а затем переводит данные в матрицу, переносит ее и преобразует ее в кадр данных. Второй способ создает список, состоящий из переменных года и месяца, и использует это, чтобы позднее преобразовать в фрейм данных и добавить имена.

# create test data
set.seed(123)
tt <- ts(rnorm(12*5, 17, 8), start=c(1981,1), frequency = 12)

1). Это решение требует, чтобы у нас целые последовательные годы

dmn <- list(month.abb, unique(floor(time(tt))))
as.data.frame(t(matrix(tt, 12, dimnames = dmn)))

Если нас не интересуют красивые имена, это просто as.data.frame(t(matrix(tt, 12))).

Мы могли бы заменить dmn<- line со следующей более простой строкой, используя комментарий @ thelatemail:

dmn <- dimnames(.preformat.ts(tt))

2) tapply. Более общее решение с использованием tapply:

tapply(tt, list(year = floor(time(tt)), month = month.abb[cycle(tt)]), c)

Если нас не интересуют имена, мы можем заменить month.abb[cycle(tt)] только на cycle(tt).

Примечание: To инвертируйте это, предположим, DF - это любое из решений в области данных выше. Затем попробуйте:

ts(c(t(DF)), start = 1981, freq = 12)
3
задан pb2q 25 September 2012 в 21:30
поделиться

3 ответа

.*\bEU\b.*

 public static void main(String[] args) {
       String regex = ".*\\bEU\\b.*";
       String text = "EU is an acronym for  EUROPE";
       //String text = "EULA should not match";


       if(text.matches(regex)) {
           System.out.println("It matches");
       } else {
           System.out.println("Doesn't match");
       }

    }
7
ответ дан gtgaxiola 21 August 2018 в 01:49
поделиться

Используйте шаблон с границами слов :

String str = "I am in the EU.";

if (str.matches(".*\\bEU\\b.*"))
    doSomething();

Взгляните на документы для Pattern .

3
ответ дан pb2q 21 August 2018 в 01:49
поделиться

Вы можете сделать что-то вроде

String str = "I am in the EU.";
Matcher matcher = Pattern.compile("\\bEU\\b").matcher(str);
if (matcher.find()) {
   System.out.println("Found word EU");
}
2
ответ дан Reimeus 21 August 2018 в 01:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: