我正在尝试使用sed清理URL行以仅提取域名..
所以来自:
http://www.suepearson.co.uk/product/174/71/3816/
Run Code Online (Sandbox Code Playgroud)
我想要:
(有或没有火车斜线,没关系)
我试过了:
sed 's|\(http:\/\/.*?\/\).*|\1|'
Run Code Online (Sandbox Code Playgroud)
和(逃避非贪婪量词)
sed 's|\(http:\/\/.*\?\/\).*|\1|'
Run Code Online (Sandbox Code Playgroud)
但我似乎无法使非贪婪量词工作,所以它总是最终匹配整个字符串.
我目前正在执行以下操作来解码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图像字符串的图像部分?
也许通过检测字符串中的第一个逗号?
提前致谢.
所以我在实现这个场景时遇到了麻烦:
从后端服务器,我收到一个 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 上实现的东西,但我不知道从哪里开始。
假设我有以下 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”)
有人对此有什么想法吗?
我想从正则表达式中提取下面的第一句话.我想要实现的规则(我知道它不是通用解决方案)是从字符串启动中提取^(包括)以小写字母或数字开头的第一个句点/感叹号/问号.
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)
任何提示非常感谢.
我还没有找到在 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
实际结果 - “ …