当前位置: 首页 > 面试题库 >

Jmeter-beanshell中的正则表达式(matcher()/ pattern())削减了国家字符

秦涵映
2023-03-14
问题内容

我需要从服务器响应数据中删除一些内容。

使用我得到的正则表达式提取器

<span class="snippet_word">Działalność</span> <span class="snippet_word">lecznicza</span>.</a>

从那我只需要:“Działalnośćlecznicza”

所以我用Beanshell编写了一个程序,应该这样做,因为我得到了一个问题

“ lecznicza lecznicza”

这是我的程序:

import java.util.regex;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

String pattern = "\\w+(?=\\<)";
String co = vars.get("tresc");
int len  = Integer.parseInt(vars.get("length"));
String phrase="";
StringBuffer sb = new StringBuffer();

Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(co);

for(i=0; i < len ;i++){
if (m.find()){
strbuf = new StringBuffer(m.group(0));
} 
else {
phrase="notfound";
}

sb.append(" ");
sb.append(strbuf);
}

phrase = sb.toString();

return phrase;

tresc-是我提取模式词的来源。长度-告诉我我要提取多少个单词。

程序可以很好地处理不带民族字符的短语。这就是为什么我认为编码或此处存在某些问题:

Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(co);

但我不知道如何更改我的代码。


问题答案:

\w与unicode不匹配。要在regex中匹配unicode,可以使用\p{L}

String pattern = "\\p{L}+(?=\\<)";

虽然这种类型的工作,我会建议使用的XML解析器中描述的正则表达式是完全不适合解析HTML / XML



 类似资料:
  • 本文向大家介绍详解Java正则表达式中Pattern类和Matcher类,包括了详解Java正则表达式中Pattern类和Matcher类的使用技巧和注意事项,需要的朋友参考一下 前言 本文将介绍Java正则表达式中的Pattern类与Matcher类。首先我们要清楚指定为字符串的正则表达式必须首先被编译为pattern类的实例。因此如何更好的了解这两个类,是编程人员必须知道的。 以下我们就分别来

  • 我需要用正则表达式提取单词中''之前和''之前的韩文字母。 458 138->提取“”和“” 1600->提取“” 我有[^\X00-\X7F]+(?=)[^\X00-\X7F]+(?=)。但这并不是对所有人都有效

  • 本文向大家介绍字符类:减法-Java正则表达式,包括了字符类:减法-Java正则表达式的使用技巧和注意事项,需要的朋友参考一下 您可以从另一个范围中减去一个范围,并将其用作新范围。您可以使用字符类的两个变体来实现这一点,即取反和交集。 例如,范围[al]和[^ eh]的交集给您字符a至l作为愤怒减去字符[eh] 示例 输出结果

  • 昨天,我需要向正则表达式添加一个文件路径,创建一个如下所示的模式: 一开始正则表达式不匹配,因为包含几个正则表达式特定的符号,如 或 。作为快速修复,我将它们替换为 和 . 与 . 然而,我问自己,是否没有一种更可靠或更好的方法来清除正则表达式特定符号中的字符串。 Python 标准库中是否支持此类功能? 如果没有,您是否知道一个正则表达式来识别所有正则表达式并通过替代品清理它们?

  • 我有一个包含数千行的文本文件。这里有一个例子 我试图提取'nt60'、'nt50'末尾的字符串。 问题是会包含行尾字符() 我想使用正则表达式搜索来匹配从 (') 开始的字符串,但我不知道我应该用什么来匹配 。 有人能帮忙吗?

  • 主要内容:实例下表包含了元字符的完整列表以及它们在正则表达式上下文中的行为: 字符 描述 \ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个 向后引用、或一个八进制转义符。例如,'n' 匹配字符 "n"。'\n' 匹配一个换行符。序列 '\\' 匹配 "\" 而 "\(" 则匹配 "("。 ^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 '\n' 或