我有一些从pdf文件中提取的文本,我正在寻找一些匹配职位的关键词,我试图使用许多正则表达式只获得不以日期(任何日期格式)开始的行但我必须得到其他行从任何其他数字或单词开始。
我希望在这里找到一个好主意。最好
我已经尝试了这两个正则表达式来找到ingenieur关键词而没有任何成功:
((?m)^(?![0-9])\\s*\\b"+ sTofind +"\\b)
这个也是:
((?m)[^(?!(0-9))][\\s{2,4}]\\b"+ sTofind +"\\b.*)
我使用的文本测试就是这个(>字符不是文本的一部分):
etudiant -: ingenieur etudes et developpement
http://www.doyoubuzz.com/profilen
experiences
ingenieur
2018-2014 ingenieur
331 ingenieur
29 rue de la terrasse Ingenieur Centrale Lyon / Supélec
93160 NOISY LE GRAND ingenieur
09 66 11 10 93 Expertise en instrumentation industrielle,
06 44 25 90 09 automatisation ingenieur & marketing opérationnel
[email protected] Bilingue anglais ingenieur
我希望找到突出显示的文字:
etudiant -: <i>ingenieur etudes et developpement</i>
http://www.doyoubuzz.com/profilen
<i>experiences</i>
<i>ingenieur</i>
2018-2014 ingenieur
331 <i>ingenieur</i>
29 rue de la terrasse <i>Ingenieur Centrale Lyon / Supélec </i>
93160 NOISY LE GRAND <i>ingenieur</i>
09 66 11 10 93 Expertise en instrumentation industrielle,
06 44 25 90 09 automatisation <i>ingenieur & marketing opérationnel </i>
[email protected] Bilingue anglais <i>ingenieur</i>
您可以使用:
(?mi)^((?![0-9]+-[0-9]+).*?)(\bingenieur\b.*)
关于模式
(?mi)
多行和不区分大小写的标志^
字符串的开头(
捕获组
(?!
否定的先行,断言在右边是什么是不可能的
[0-9]+-[0-9]+
匹配1+位数,连字符和1+位数
).*?
关闭否定前瞻并匹配任何字符,除了换行非贪婪)
关闭捕获组(\bingenieur\b.*)
捕获在字边界之间匹配ingenieur直到字符串结尾的组您可以在代码中使用多行和不区分大小写的标志,例如:
String sTofind = "ingenieur";
String regex = "^((?!>[0-9]+-[0-9]+).*?)(\\b"+ sTofind + "\\b.*)";
String string = "...";
Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE | Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(string);
String result = matcher.replaceAll(subst);
然后你也可以用experiences
替换ingenieur,如果你也想突出它。
并替换为可以突出显示第二组的2个捕获组:
$1<i>$2</i>