我从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.email@wanadoo.fr 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.email@wanadoo.fr Bilingue anglais <i>ingenieur</i>
答案 0 :(得分:2)
您可以使用:
(?mi)^((?![0-9]+-[0-9]+).*?)(\bingenieur\b.*)
关于图案
(?mi)
多行且不区分大小写的标志^
字符串的开头(
捕获组
(?!
负向前进,断言右边立即不存在
[0-9]+-[0-9]+
匹配1个以上的数字,一个连字符和1个以上的数字.*?
结束否定查找并匹配除换行符非贪婪以外的任何字符)
关闭捕获组(\bingenieur\b.*)
捕获组,匹配单词边界之间的神经元直到字符串的结尾您可以在代码中使用多行和不区分大小写的标志,例如:
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
代替工程师。
并替换为两个捕获组,您可以在其中突出显示第二个组:
$1<i>$2</i>