나는 다음과 같이 내가 스프링 설정 파일에서 정의한 목록을 가지고있다 -자바의 입력 문자열에서 정규식을 사용하여 정확한 단어를 찾는 방법은 무엇입니까?
<bean id="LatinExpressions" class="org.springframework.beans.factory.config.ListFactoryBean" scope="singleton">
<property name="sourceList">
<list>
<value>ad lib\.</value>
<value>ad libitum</value>
<value>ca</value>
<value>ca\.</value>
<value>circa</value>
<value>cet\. par\.</value>
<value>ceteris paribus</value>
<value>cf\.</value>
<value>e\.g\.</value>
<value>i\.e\.</value>
<value>in vacuo</value>
<value>in situ</value>
<value>in vitro</value>
<value>in vivo</value>
<value>inter alia</value>
<value>versus</value>
<value>vice versa</value>
<value>vide infra</value>
<value>vide supra</value>
<value>viz\.</value>
<value>vs</value>
<value>vs\.</value>
<value>versus</value>
<value>in priori</value>
<value>etc\.</value>
</list>
</property>
</bean>
내 역할은 목록에서이 요소에 대한 입력을 스캔하고 그들이 기울임 꼴 또는 로마에있는 경우 발생을 계산하는 것입니다 . 이를 위해 거의 모든 경우에 적용되는 패턴을 작성했습니다.
private String maintainRomanOrItalicConsistencyInArticle(String currentLine){
int latinromanOcurrenceinContent=0;
int latinitalicOccurenceinContent=0;
ApplicationContext ctx = new ClassPathXmlApplicationContext("latinexpressions.xml");
@SuppressWarnings("unchecked")
List<String> latinExpressions = (List<String>)ctx.getBean("LatinExpressions");
for(String latinexp : latinExpressions){
Pattern findRomanItalics = Pattern.compile("((<em>)?)\\b"+ latinexp+"(,|\\s){0,}(\\b)?((</em>)?)");
Matcher findRomanItalicsMatcher = findRomanItalics.matcher(currentLine);
while(findRomanItalicsMatcher.find()){
if(findRomanItalicsMatcher.group(1)!=null && findRomanItalicsMatcher.group(5)!=null){
latinitalicOccurenceinContent+=1;
}
else{
latinromanOcurrenceinContent +=1;
}
}
}
if(latinromanOcurrenceinContent>latinitalicOccurenceinContent){
System.out.println("latinromanOcurrenceinContent:::" + latinromanOcurrenceinContent);
}
else{
System.out.println("latinitalicOccurenceinContent::" +latinitalicOccurenceinContent);
}
return currentLine;
}
입력 I 테스트가 생각하는 : = "<p>For example try this <em>ad libitum</em>, <em>circa</em>, <em>paribus</em>are latin expressions.The following list also contains some latin expressions:-<em>ad lib.,</em>inter alia,<em>vide infra,</em>vide infra<em>in priori,</em></p> cater. This is ca, ad libitum;
내 문제는 다음과 같이 내 패턴도 cater
을 찾는 것이 : - : - 아래는 제가 쓴 방법은
나는 단지 캐서린이나 자동차 나 택시를 찾을 필요가있다.
도와주세요.
감사합니다.
EPP 스크린 샷! 예! 강력한 무기. :) – zx81