相关疑难解决方法(0)

在sed中非贪婪(不情愿)的正则表达式匹配?

我正在尝试使用sed清理URL行以仅提取域名..

所以来自:

http://www.suepearson.co.uk/product/174/71/3816/
Run Code Online (Sandbox Code Playgroud)

我想要:

http://www.suepearson.co.uk/

(有或没有火车斜线,没关系)

我试过了:

 sed 's|\(http:\/\/.*?\/\).*|\1|'
Run Code Online (Sandbox Code Playgroud)

和(逃避非贪婪量词)

sed 's|\(http:\/\/.*\?\/\).*|\1|'
Run Code Online (Sandbox Code Playgroud)

但我似乎无法使非贪婪量词工作,所以它总是最终匹配整个字符串.

regex pcre sed greedy regex-greedy

393
推荐指数
10
解决办法
23万
查看次数

参考 - 这个正则表达式意味着什么?

这是什么?

这是常见问答的集合.这也是社区Wiki,因此每个人都被邀请参与维护.

为什么是这样?

患的是给我泽码型的问题和答案不佳,没有解释.此参考旨在提供质量问答的链接.

范围是什么?

此引用适用于以下语言:,,,,,,.

这可能过于宽泛,但这些语言共享相同的语法.对于特定功能,它背后的语言标签,例如:

  • 什么是正则表达式平衡组?

regex

52
推荐指数
1
解决办法
11万
查看次数

如何从Javascript中的任何图像类型的base64字符串中剥离数据:图像部分

我目前正在执行以下操作来解码Javascript中的base64图像:

    var strImage = "";
    strImage = strToReplace.replace("data:image/jpeg;base64,", "");
    strImage = strToReplace.replace("data:image/png;base64,", "");
    strImage = strToReplace.replace("data:image/gif;base64,", "");
    strImage = strToReplace.replace("data:image/bmp;base64,", "");
Run Code Online (Sandbox Code Playgroud)

如您所见,我们接受四种最标准的图像类型(jpeg,png,gif,bmp);

然而,这些图像中的一些非常大,并且通过替换扫描每个图像4-5次似乎是可怕的浪费并且非常低效.

有没有办法可以可靠地剥离数据:一次传递中base64图像字符串的图像部分?

也许通过检测字符串中的第一个逗号?

提前致谢.

javascript string base64 image

8
推荐指数
3
解决办法
2万
查看次数

JSX 组件 + 危险的SetInnerHTML?

所以我在实现这个场景时遇到了麻烦:

从后端服务器,我收到一个 html 字符串,如下所示:

<ul><li><strong>Title1</strong> <br/> <a class=\"title1" href="title1-link">Title 1</a></li><li><strong>Title2</strong> <a class="title2" href="/title2-link">Title 2</a>
Run Code Online (Sandbox Code Playgroud)

通常,仅使用dangerouslySetInnerHTML.

但是,围绕a hrefhtml 中的标签,我需要将它们包装在组件中,如下所示:

<ModalLink href={'title'}>
    {Title}
</ModalLink>
Run Code Online (Sandbox Code Playgroud)

这是因为在包装a标签时,组件本质上添加了创建新子窗口的功能。

我想这是你需要在 Regex 上实现的东西,但我不知道从哪里开始。

javascript regex reactjs react-dom

5
推荐指数
1
解决办法
2694
查看次数

如何在Python中使用正则表达式匹配双换行符“\n\n”之前的所有内容?

假设我有以下 Python 字符串

str = """
....
Dummyline

Start of matching
+----------+----------------------------+
+   test   +           1234             +
+   test2  +           5678             +
+----------+----------------------------+

Finish above. Do not match this
+----------+----------------------------+
+  dummy1  +       00000000000          +
+  dummy2  +       12345678910          +
+----------+----------------------------+
"""
Run Code Online (Sandbox Code Playgroud)

我想匹配第一个表中的所有内容。我可以使用从开始匹配的正则表达式

"Start"
Run Code Online (Sandbox Code Playgroud)

并匹配所有内容,直到找到双换行符

"Start"
Run Code Online (Sandbox Code Playgroud)

我在另一篇 stackoverflow 帖子中找到了一些有关如何执行此操作的提示(如何在正则表达式中匹配“直到此字符序列的任何内容”?),但它似乎不适用于双换行符情况。

我想到了下面的代码

\n\n
Run Code Online (Sandbox Code Playgroud)

基本上在哪里

pattern = re.compile(r"Start[^\n\n]")
matches = pattern.finditer(str)
Run Code Online (Sandbox Code Playgroud)

表示匹配所有内容,直到找到字符 x。但这仅适用于字符,不适用于字符串(在本例中为“\n\n”)

有人对此有什么想法吗?

python regex

4
推荐指数
1
解决办法
3721
查看次数

用字符串提取第一句

我想从正则表达式中提取下面的第一句话.我想要实现的规则(我知道它不是通用解决方案)是从字符串启动中提取^(包括)以小写字母或数字开头的第一个句点/感叹号/问号.

require(stringr)

x = "Bali bombings: U.S. President George W. Bush amongst many others has condemned the perpetrators of the Bali car bombing of October 11. The death toll has now risen to at least 187."
Run Code Online (Sandbox Code Playgroud)

到目前为止,我最好的猜测是在这种情况下尝试实现非贪婪的字符串匹配前方法失败:

str_extract(x, '.+?(?=[a-z0-9][.?!] )')
[1] NA
Run Code Online (Sandbox Code Playgroud)

任何提示非常感谢.

regex r stringr

3
推荐指数
1
解决办法
245
查看次数

BASH:如何在 sed 命令中对字符串使用 Regex Negative Lookahead?

我还没有找到在 sed 命令中使用此正则表达式 - .+?(?=,) 来提取该字符串的一部分的方法(使用第一个字符实例的 Lookbehind)。

用简单的英语来说,我想提取第一个逗号之前的字符串部分。由于我计划将来提取字符串的特定文件名,因此我不能依赖 cut 命令(我最终必须使用 sed 命令),:-

name='错误 1:/home/rphillips/Desktop/empties/BN23_2303.tif,带 1:无法计算统计信息,采样中未找到有效像素。'

这些是我使用过的变体,包括有效的测试 - sed 's/band/rose/'。然而,我使用的其他变体(如下所示)给出了空格作为输出。

while read -r line; do
    name="$line"
    echo $name
    #file_path=$(echo $name | cut -d "," -f 1)
    #file_path=$(echo $name | sed -e '/s\/.+?(?=,)///')
    #file_path=$(echo $name | sed 's/band/rose/')
    file_path=$(echo $name | sed '/s\/.+?(?=, )///')
    #file_path=$(echo $name | grep -P '.+?(?=,)')
    #file_path=$(echo $name | sed 
    #file_path=$(echo $name | awk '/.+?(?=,)/{print $name}'
    echo $file_path
done < "$filename"
Run Code Online (Sandbox Code Playgroud)

预期结果 - 错误 1:/home/rphillips/Desktop/empties/BN25_2303.tif

实际结果 - “ …

regex bash sed

2
推荐指数
1
解决办法
3389
查看次数

标签 统计

regex ×6

javascript ×2

sed ×2

base64 ×1

bash ×1

greedy ×1

image ×1

pcre ×1

python ×1

r ×1

react-dom ×1

reactjs ×1

regex-greedy ×1

string ×1

stringr ×1