我在正则表达式方面遇到了麻烦: 我需要从以下结构中提取(并替换)所有的点:
any_symbols->white_space->x.(or xx. or Xx. or xX. or xy. or yy. etc.)->white_space->any_symbol_not_upper_case_and_not_a_digit
例如
1990 x. abcd - extract dot
ffff xx.abcd - extract dot
1990 x. Abcdef - do not extract
abcd x. Abcd - do not extract
abcd x. 1990 - do not extract
所以我构建了这样的正则表达式:
(?<=\s[XxYy]{1,2})\.(?>=\s+?[^\p{javaUpperCase}\d])
但是它不匹配。那么出了什么问题呢?
谢谢。
P.S.
之后
String skipPtrn="(?<=\\s[РрГг]{1,2})\\.(?>=\\s+?[^\\p{javaUpperCase}\\d])";
originalText=originalText.replaceAll(skipPtrn, " ");
我仍在文本中寻找:
1673年出现
1623年通过
1925年(“新闻
等等。