- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
考虑到 Vavr 提供 tuples ,是否可以将它们用于 capturing groups在正则表达式中?
以HTTP请求行作为示例字符串进行匹配
GET /resource HTTP 1.1
和匹配的模式
Pattern.compile("(\\w+) (.+) (.+)")
Vavr 中是否有方法将三个匹配的字符串作为元组返回?
最佳答案
自己创建这个很容易:
/**
* Gets the three matched groups of the {@code regex} from the {@code original}.
*
* @param regex a {@link Pattern} that should have three groups in it and
match the {@code original}
* @param original the string we'll match with the {@code regex}
* @return a {@link Tuple3} of the three matched groups or {@link Option#none} if
* the {@code regex} did not match
*/
static Option<Tuple3<String, String, String>> getGroups3(Pattern regex,
CharSequence original) {
var matcher = regex.matcher(original);
return matcher.matches() && matcher.groupCount() == 3 ?
Some(Tuple.of(matcher.group(1), matcher.group(2), matcher.group(3))) :
Option.none();
}
这是您如何使用该方法:
var pattern = Pattern.compile("(\\w+) (.+) (.+)");
var requestLine = "GET /resource HTTP 1.1";
var result = getGroups3(pattern, requestLine).fold(
// No match
() -> String.format("Could not parse request method, resource, and " +
"HTTP version from request line. Request line is '%s'",
requestLine),
// Do whatever you want with the three matched strings
tuple3 -> tuple3.apply((method, resource, httpVersion) ->
String.format("Method is %s, resource is %s, HTTP version is %s",
method, resource, httpVersion)));
关于java - 使用 Vavr 获取正则表达式组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56855090/
当函数定义如下时 static Function1 fibonacci = Function((BigInteger value) -> value.equals(BigInt
是否有任何选项可以对 vavrs 集合应用对象分解? 即类似于 scala 中的代码片段: val x = List(1, 2, 3) val t = x match { case List(a,
我正在尝试找出使用 VAVR 的 Try 的惯用方法。我正在查看的用例必须执行以下步骤: - 获取鞋子列表(调用可以抛出一个已检查的异常) - 清洁每只鞋(调用可以抛出一个已检查的异常) - 恢复每双
我有方法: @GetMapping public Either,ResponseEntity>> readAllOrderedByStatus() { var result = taskCru
对于我的 API,我正在解析一个对象并使用 lombok 构建器创建我的对象。其中一个变量是 LocalDateTime 类型的“arrivalTime”,当然它可以为 null。 我以前是这样的:
我有几个Vavr Either ',我想为每个 Either 调用一个具有 Right 值的函数。例如: Either either1 = .. Either either2 = .. Either
把 Google Guava kool-aid 从我们嘴里吐了出来,并一头扎进我们对 VAVR 及其闪闪发光的理想的新迷恋中,假设我们正在 map()ping Stream,在 Traversable
我希望得到您关于如何以功能性方式正确编写此代码的建议: private Option calculate(Integer X, Integer Y) { if (X otherMethod(
我有这样的代码: return validators .stream() .flatMap(v -> v.validate(scoreRequest
考虑到 Vavr 提供 tuples ,是否可以将它们用于 capturing groups在正则表达式中? 以HTTP请求行作为示例字符串进行匹配 GET /resource HTTP 1.1 和匹
使用Vavr的类型,我创建了一对 Some s: var input = Tuple(Some(1), Some(2)); 我想使用 Vavr 的匹配表达式获取整数 1 和 2;这就是我目前的做法:
所以我有一个返回 Vavr Try 的方法: public Try request() {...} request来 self 无法修改的来源。目前,我对 request 的结果进行了平面映射。并取决
我正在使用来自 vavr 的集合图书馆。我有一个这样定义的元素列表: List integers = List.of(1, 2, 3); 如何迭代列表的元素并同时访问索引?在 Groovy 中有一个方
谁能解释一下为什么这段代码: interface Lol { default Try> lol() { return Try.of(List::empty); } } class Lo
VAVR 集合是“不可变的”。 那么,如果我有静态变量,例如,保存所有 WebSocket session ,我将如何使用 VAVR 以使集合是线程安全的? 例如: @ServerEndpoint("
您好,我正在尝试将 vavr 添加到我的项目中,现在我正在为 Vavr.List 对象的正确序列化而苦苦挣扎。下面是我的 Controller : import io.vavr.collection.
是否有一种简洁、惯用的方法来从 Javaslang/Vavr List 创建顺序保留映射? List.toMap() 返回一个普通的 HashMap,所以这并不能实现。我现在拥有的是这样的东西—— l
我正在浏览 Vavr Usage Guide的部分关于使用 Match 和他们称之为“语法糖”的其他“语法糖”执行副作用。这是那里给出的例子: Match(arg).of( Case($(is
我的代码 open class Fail(override val message: String, override val cause: Throwable?) : RuntimeExceptio
这是我的代码片段: public static void main(String[] args) { Try.of(Main::getLines) .onFailur
我是一名优秀的程序员,十分优秀!