首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >当一行与Scala中的子字符串匹配时,拆分多行字符串

当一行与Scala中的子字符串匹配时,拆分多行字符串
EN

Stack Overflow用户
提问于 2017-07-19 07:42:40
回答 2查看 465关注 0票数 0

当一行匹配Scala中的子字符串时,拆分多行字符串。下面是相同的代码片段。但我想用适当的正则表达式。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
val s1 =
  """
    |Hello;
    |------------------------------
    |GO
    |World
    |go
    |True
    |            GO
    |,I am Naga
    |+++++++++++++++++++++++++
    |GOTO School
    |GO Heaven
  """
s1.split("\n(?i)GO\n")

输出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Hello;
------------------------------
World
True
,I am Naga
+++++++++++++++++++++++++
GOTO School 
GO Heaven

希望在regex中使用^和$来检查,而不是\n

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-20 03:41:17

你可以用

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
val key = "GO"
val res = s1.stripMargin('|').split(s"(?mi)^\\s*${key}\\s*$$[\r\n]*")

Scala演示

在首先使用stripMargin('|')删除缩进后,将应用regex拆分。

模式与匹配

  • (?mi) -整个模式不区分大小写,因为i是不区分大小写的修饰符,m使^$匹配行的开始/结束,而不是字符串。
  • ^ -行的开头
  • \\s* -0或更多的空白空间
  • ${key} - key的值(请注意该变量中的逃避任何特殊的字符 )
  • \\s* -尾随行空白
  • $$ -实际上,它是一行的单个文字$ -末端(由于字符串文字是一个内插的字符串,$用于引入代码),它是加倍的)。
  • [\r\n]* -零或更多的CR或/和LF线中断字符。
票数 1
EN

Stack Overflow用户

发布于 2017-07-19 19:24:40

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
s1.split( "(?m)^(\\s*(?i)%s)\\s*$[\r\n]*".format("GO"))

在决赛的最后阶段。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45195300

复制
相关文章
Java在字符串中查找匹配的子字符串
示例: 在源字符串“You may be out of my sight, but never out of my mind.”中查找“my”的个数。输出:匹配个数为2
全栈程序员站长
2022/09/14
7.2K0
字符串匹配:字符串中查找某子串
我们在平时的软件开发,尤其是嵌入式开发,字符串匹配是非常重要的一个算法。而目前常用的字符串匹配算法有很多,下面就来介绍几个。
跋扈洋
2022/03/29
1.4K0
Sql一行拆分转多行
select a.planid,b.mias,0 miaid into [1_cache3] from (select planid,mias=convert(xml,'<root><v>'+replace(mias,',','</v><v>')+'</v></root>') from [1_cache1])a outer apply (select mias=C.v.value('.','nvarchar(100)') from a.mias.nodes('/
冰封一夏
2019/09/11
2.2K0
[数据结构拾遗]子字符串匹配常用算法总结
本专栏旨在快速了解常见的数据结构和算法。在需要使用到相应算法时,能够帮助你回忆出常用的实现方案并且知晓其优缺点和适用环境。
Rude3Knife的公众号
2019/08/08
9220
[数据结构拾遗]子字符串匹配常用算法总结
[数据结构拾遗]子字符串匹配常用算法总结
本专栏旨在快速了解常见的数据结构和算法。在需要使用到相应算法时,能够帮助你回忆出常用的实现方案并且知晓其优缺点和适用环境。
蛮三刀酱
2019/03/26
1.2K0
[数据结构拾遗]子字符串匹配常用算法总结
java字符串的拆分_Java中的字符串分割 .
Java中的我们可以利用split把字符串按照指定的分割符进行分割,然后返回字符串数组,下面是string.split的用法实例及注意事项:
全栈程序员站长
2022/08/26
3.7K0
Python 中多行字符串的水平串联
在 Python 中,字符串的串联是一种常见的操作,它允许您将两个或多个字符串组合成一个字符串。虽然垂直连接字符串(即一个在另一个下面)很简单,但水平连接字符串(即并排)需要一些额外的处理,尤其是在处理多行字符串时。在本文中,我们将探讨在 Python 中执行多行字符串水平连接的不同方法。
很酷的站长
2023/08/11
3880
Python 中多行字符串的水平串联
字符串的匹配算法_多字符串匹配
不要被事物的表面现象所迷惑,这个算法全称:Brute Force,有个拉风的中文名:暴力匹配算法。
全栈程序员站长
2022/09/25
2.2K0
字符串的匹配算法_多字符串匹配
字符串中查找子串_cstring查找子字符串
假设要从主串 s = “goodgoogle” 中找到 t = “google” 子串。根据我们的思考逻辑,则有:
全栈程序员站长
2022/09/24
3K0
字符串中查找子串_cstring查找子字符串
字符串匹配算法_多字符串匹配
从好后缀的后缀子串中,找一个最长的且和模式串的前缀子串匹配的 {v},滑动至 {v} 对齐
全栈程序员站长
2022/09/25
1.8K0
字符串匹配算法_多字符串匹配
Java 多行字符串
在本文中,我们来说说 Java 的多行字符串(multiline strings )。
HoneyMoose
2022/08/08
4.1K0
Java 多行字符串
【Groovy】字符串 ( 字符串拼接 | 多行字符串 )
文章目录 一、字符串类型变量 二、多行字符串 三、完整代码示例 一、字符串类型变量 ---- 在双引号字符串中 , 使用 ${变量名} 进行字符串拼接 , ${变量名} 符号的取值 , 是在 定义时取值 ; def s1 = "Hello" def s3 = "${s1} World!!!" s1 = "Hello Groovy" // 修改被拼接的函数值 // 打印的值为 "Hello World!!!" println s3
韩曙亮
2023/03/30
3.1K0
【Groovy】字符串 ( 字符串拼接 | 多行字符串 )
Python中匹配模糊的字符串
如何使用thefuzz 库,它允许我们在python中进行模糊字符串匹配。此外,我们将学习如何使用process 模块,该模块允许我们在模糊字符串逻辑的帮助下有效地匹配或提取字符串。
Python学习者
2023/10/09
5580
YAML中多行字符串的配置方法总结
通过\n在显示的时候换行,通过配置行末的\让这个字符串换行继续写(这个必须有,如果没有第二行行首会多一个空格)。
程序猿DD
2020/03/23
3.6K0
YAML中多行字符串的配置方法总结
第八节、Python中raw字符串与多行字符串《Python学习》
如果一个字符串包含很多需要转义的字符,对每一个字符都进行转义会很麻烦。为了避免这种情况,我们可以在字符串前面加个前缀r ,表示这是一个 raw 字符串,里面的字符就不需要转义了。例如:
申霖
2019/12/27
5800
Java字符串匹配_正则匹配替换字符串
public static void main(String args[]) {
全栈程序员站长
2022/09/24
2.6K0
删除字符串中的子串
输入2个字符串S1和S2,要求删除字符串S1中出现的所有子串S2,即结果字符串中不能包含S2。
叶茂林
2023/07/28
2590
删除字符串中的子串
字符串匹配
问题描述 试题编号: 201409-3 试题名称: 字符串匹配 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述   给出一个字符串和多行文字,在这些文字中找到字符串出现的那些行。你的程序还需支持大小写敏感选项:当选项打开时,表示同一个字母的大写和小写看作不同的字符;当选项关闭时,表示同一个字母的大写和小写看作相同的字符。 输入格式   输入的第一行包含一个字符串S,由大小写英文字母组成。   第二行包含一个数字,表示大小写敏感的选项,当数字为0时表示大小写不敏感,当数字为1时表示大小写敏感。   第三行包含一个整数n,表示给出的文字的行数。   接下来n行,每行包含一个字符串,字符串由大小写英文字母组成,不含空格和其他字符。 输出格式   输出多行,每行包含一个字符串,按出现的顺序依次给出那些包含了字符串S的行。 样例输入 Hello 1 5 HelloWorld HiHiHelloHiHi GrepIsAGreatTool HELLO HELLOisNOTHello 样例输出 HelloWorld HiHiHelloHiHi HELLOisNOTHello 样例说明   在上面的样例中,第四个字符串虽然也是Hello,但是大小写不正确。如果将输入的第二行改为0,则第四个字符串应该输出。 评测用例规模与约定   1<=n<=100,每个字符串的长度不超过100。
geekfly
2022/05/06
8260
字符串匹配(一) -- 朴素匹配与 KMP 算法
软件算法中,最基础的算法要数排序和查找了,而字符串模式匹配算法可谓是基础中的基础,而最有名又最具代表性的字符串匹配算法要数 KMP 算法了,本文我们就来详细介绍一下 KMP 算法
用户3147702
2022/06/27
1.3K0
字符串匹配(一) -- 朴素匹配与 KMP 算法
字符串匹配算法_字符串模式匹配算法
网络信息中充满大量的字符串,对信息的搜寻至关重要,因此子字符串查找(即字符串匹配)是使用频率非常高的操作:给定一段长度为N的文本和长度为M的模式字符串(N≥M),在文本中找到一个和模式串相匹配的子串。由这个问题可以延伸至统计模式串在文本中出现的次数、找出上下文(和该模式串相符的子字符串周围的文字)等更复杂的问题。
全栈程序员站长
2022/08/02
2.9K0
字符串匹配算法_字符串模式匹配算法

相似问题

如何使scala字符串拆分与python匹配

13

匹配任意拆分多行的字符串

21

Scala:通过模式匹配拆分字符串

31

Scala:字符串模式匹配和拆分

23

Java子字符串或多行字符串拆分

70
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文