Java Regex Вопрос - PullRequest
       5

Java Regex Вопрос

3 голосов
/ 06 декабря 2009

В Java - мне нужно искать / проверять входную строку для числа или для конкретной строки. это должен быть один из них. Например - Если у меня есть эти строки ввода:

cccccccc 123 vvvvvvvvv jhdakfksah
cccccccc ABC vvvvvvnhj  yroijpotpo
cccdcdcd 234 vcbvbvbvbv lkjd dfdggf
ccccbvff ABC jflkjlkjlj fgdgfg

Мне нужно найти 123, ABC, 234, ABC

чтобы найти число, в котором я мог бы использовать регулярное выражение: "\ d +", но чтобы найти любой из них. Как их объединить?

Ответы [ 6 ]

2 голосов
/ 14 ноября 2012

Вы могли бы иметь что-то вроде этого ...

^[^ ]* ([^ ]*) .*$
2 голосов
/ 06 декабря 2009

Как упомянул хотя бы один другой ответ, похоже, что вы выбираете второе слово в строке, разделенной пробелом, и регулярные выражения требуют больше работы, чем необходимо для этой задачи. String.indexOf будет достаточно:

String line = ...;
int start = line.indexOf(" ") + 1;
int end = line.indexOf(" ", end);
String word2 = line.substring(start, end);

или, теперь, когда я думаю об этом

String word2 = line.split(" ")[1];
2 голосов
/ 06 декабря 2009

Вы можете указать альтернативы в регулярном выражении, используя символ |:

\d+|[ABC]+

В вашем конкретном примере искомая строка, по-видимому, всегда является вторым "словом" (разделенным пробелом), поэтому может быть полезно включить пробел в регулярное выражение для его поиска. Либо с помощью группы захвата для захвата части, которую вы действительно хотите извлечь:

" (\d+|[ABC]+)"

(я использовал кавычки для ограничения регулярного выражения). Или с помощью утверждения с задним числом:

(?<= )(\d+|[ABC]+)

, который будет соответствовать только желаемой части, но все еще требует места перед ней.

0 голосов
/ 06 декабря 2009

Попробуйте это регулярное выражение:

^\w+\W+(\w+)

И сделайте так, чтобы выражение соответствовало началу строки с ^.

0 голосов
/ 06 декабря 2009

Попробуйте это регулярное выражение:

"(\d+|ABC)"
0 голосов
/ 06 декабря 2009

Примерно так: [0-9] + | [a-zA-Z] + или, может быть, [0-9] + | (ABC) +; не уверен, какое у тебя правило для персонажей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...